package com.kcht.np.vo.permission;

import lombok.*;

import javax.validation.constraints.NotNull;
import javax.validation.constraints.Pattern;
import javax.validation.constraints.Size;

/**
  * <p>
  *
  * </p>
  * @Package:     com.kcht.np.mp.vo.permission
  * @Author:      liuqi
  * @CreateDate:  2020/4/23 15:24
 */
@Getter
@Setter
@ToString
@AllArgsConstructor
@NoArgsConstructor
public class PermCanCreateInfo {
    /**
     * 权限 上级权限ID
     */
    @NotNull(message = "上级权限标识不能为空")
    private Long parentId;

    /**
     * 权限 全局资源标识符
     */
    @Pattern(regexp = "^[a-zA-Z0-9_\\-:]*$",message = "资源命名不正确")
    @NotNull(message = "资源路径不能为空")
    private String resources;

    /**
     *  权限 标题
     */
    @Size(min = 1, message = "标题长度不能少于1位")
    @NotNull(message = "标题不能为空")
    private String title;

    /**
     *  权限，如果是菜单的话，那么就是图标名称。如果是按钮，可以不赋值
     */
    @Pattern(regexp = "^[a-zA-Z0-9_\\-]*$",message = "图标命名不正确")
    private String icon;

    /**
     *  权限，button 或者 menu 只能 二选一
     */
    @Pattern(regexp = "(button|menu)",message = "只能为button或menu")
    @NotNull(message = "类型不能为空")
    private String type;

    /**
     * 权限 描述
     */
    @Size(min = 1, message = "权限描述长度不能少于1位")
    private String description;
}
